package com.dragon.mmochat.model.enumType;

import java.util.ArrayList;
import java.util.List;

import com.dragon.mmochat.MmochatConstant;
import com.dragon.mmochat.util.MmochatUtil;

//注：一旦发版,如果此enum会存到数据库，则此类型只能增加,不能减少或修改名字
public enum MmochatMaterialType implements MmochatCommonObjectType {
	// 怪物不掉落的材料，未曾使用过，相应图片也未使用过
	兽王肉(5, 300, MmochatConstant.BMP_MATERIAL_5, "兽王的肉，比兽肉好吃多了"),

	兰英草丸(8, 300, MmochatConstant.BMP_MATERIAL_8, "兰英草做的药丸"),

	蟹黄(10, 300, MmochatConstant.BMP_MATERIAL_10, "可口的食品"),

	玉龙(12, 300, MmochatConstant.BMP_MATERIAL_12, "某人的某物"),

	凤凰血(14, 300, MmochatConstant.BMP_MATERIAL_14, "凤凰的妈妈的姐姐来了，会出现的一种血"),

	风暴石(15, 300, MmochatConstant.BMP_MATERIAL_15, "风魔的伴生品"),

	风火轮(16, 300, MmochatConstant.BMP_MATERIAL_16, "哪吒的坐骑"),

	哪吒魂魄(17, 300, MmochatConstant.BMP_MATERIAL_17, "哪吒复活需要的魂魄"),

	莲叶(18, 300, MmochatConstant.BMP_MATERIAL_18, "宝莲灯上的一片叶子"),

	龙珠(26, 300, MmochatConstant.BMP_MATERIAL_25, "龙的本命内丹，内含有龙魂"),

	// 怪物掉落的材料
	木料(1, 5, MmochatConstant.BMP_MATERIAL_1, "可以造木屋也可以当柴烧的"),

	兽肉(2, 11, MmochatConstant.BMP_MATERIAL_2, "野兽的肉"),

	巨兽肉(3, 23, MmochatConstant.BMP_MATERIAL_3, "巨兽的肉"),

	巨兽皮(4, 23, MmochatConstant.BMP_MATERIAL_4, "巨兽的皮"),

	兰英草(6, 31, MmochatConstant.BMP_MATERIAL_6, "具有特殊疗效的一种草"),

	植物精油(7, 5, MmochatConstant.BMP_MATERIAL_7, "树精的生命精华"),

	虾仁(9, 77, MmochatConstant.BMP_MATERIAL_9, "美味的食品"),

	灵兽内丹(11, 95, MmochatConstant.BMP_MATERIAL_11, "灵兽的妖丹"),

	魂魄(13, 84, MmochatConstant.BMP_MATERIAL_13, "就是灵魂"),

	珍珠(19, 42, MmochatConstant.BMP_MATERIAL_19, "蚌精分泌凝结起来的很漂亮的珠子"),

	女妖之心(20, 36, MmochatConstant.BMP_MATERIAL_20, "西北沼泽女妖的精华结晶，可以使妖族增长道行"),

	尸妖粉(21, 48, MmochatConstant.BMP_MATERIAL_21, "尸妖上的东西，可以帮助人妖双修的"),

	海珠(22, 108, MmochatConstant.BMP_MATERIAL_22, "海马掉落的海珠"),

	通天大法上卷(23, 114, MmochatConstant.BMP_MATERIAL_23, "通天教主写的一本书，只是上卷的一部分而已"),

	通天大法下卷(24, 120, MmochatConstant.BMP_MATERIAL_23, "通天教主写的一本书，只是下卷的一部分而已"),

	妖兽内丹(25, 18, MmochatConstant.BMP_MATERIAL_24, "妖兽内丹"),

	珊瑚(27, 30, MmochatConstant.BMP_MATERIAL_26, "形象像树枝，颜色鲜艳美丽，可以做装饰品，具有很高的价值"),

	赤铜(28, 35, MmochatConstant.BMP_MATERIAL_27, "一种富含铜元素的矿石，沼泽兽的食物之一"),

	疯神玉简(29, 54, MmochatConstant.BMP_MATERIAL_28, "记录着上古大神疯神的成神心得，马贼身上会掉落"),

	舍利子(30, 61, MmochatConstant.BMP_MATERIAL_29, "是人透过戒、定、慧的修持、加上自己的大愿力所得来的"),

	三级野蛮结晶(31, 30, MmochatConstant.BMP_MATERIAL_30, "可用于制作30级野蛮套装"),

	三级智慧结晶(32, 30, MmochatConstant.BMP_MATERIAL_31, "可用于制作30级智慧套装"),

	三级活力结晶(33, 30, MmochatConstant.BMP_MATERIAL_34, "可用于制作30级活力套装"),

	三级灵巧结晶(34, 30, MmochatConstant.BMP_MATERIAL_33, "可用于制作30级灵巧套装"),

	三级坚韧结晶(35, 30, MmochatConstant.BMP_MATERIAL_32, "可用于制作30级坚韧套装"),

	四级野蛮结晶(36, 40, MmochatConstant.BMP_MATERIAL_30, "可用于制作40级野蛮套装"),

	四级智慧结晶(37, 40, MmochatConstant.BMP_MATERIAL_31, "可用于制作40级智慧套装"),

	四级活力结晶(38, 40, MmochatConstant.BMP_MATERIAL_34, "可用于制作40级活力套装"),

	四级灵巧结晶(39, 40, MmochatConstant.BMP_MATERIAL_33, "可用于制作40级灵巧套装"),

	四级坚韧结晶(40, 40, MmochatConstant.BMP_MATERIAL_32, "可用于制作40级坚韧套装"),

	五级野蛮结晶(41, 50, MmochatConstant.BMP_MATERIAL_30, "可用于制作50级野蛮套装"),

	五级智慧结晶(42, 50, MmochatConstant.BMP_MATERIAL_31, "可用于制作50级智慧套装"),

	五级活力结晶(43, 50, MmochatConstant.BMP_MATERIAL_34, "可用于制作50级活力套装"),

	五级灵巧结晶(44, 50, MmochatConstant.BMP_MATERIAL_33, "可用于制作50级灵巧套装"),

	五级坚韧结晶(45, 50, MmochatConstant.BMP_MATERIAL_32, "可用于制作50级坚韧套装"),

	六级野蛮结晶(46, 60, MmochatConstant.BMP_MATERIAL_30, "可用于制作60级野蛮套装"),

	六级智慧结晶(47, 60, MmochatConstant.BMP_MATERIAL_31, "可用于制作60级智慧套装"),

	六级活力结晶(48, 60, MmochatConstant.BMP_MATERIAL_34, "可用于制作60级活力套装"),

	六级灵巧结晶(49, 60, MmochatConstant.BMP_MATERIAL_33, "可用于制作60级灵巧套装"),

	六级坚韧结晶(50, 60, MmochatConstant.BMP_MATERIAL_32, "可用于制作60级坚韧套装"),

	七级野蛮结晶(51, 70, MmochatConstant.BMP_MATERIAL_30, "可用于制作70级野蛮套装"),

	七级智慧结晶(52, 70, MmochatConstant.BMP_MATERIAL_31, "可用于制作70级智慧套装"),

	七级活力结晶(53, 70, MmochatConstant.BMP_MATERIAL_34, "可用于制作70级活力套装"),

	七级灵巧结晶(54, 70, MmochatConstant.BMP_MATERIAL_33, "可用于制作70级灵巧套装"),

	七级坚韧结晶(55, 70, MmochatConstant.BMP_MATERIAL_32, "可用于制作70级坚韧套装"),

	八级野蛮结晶(56, 80, MmochatConstant.BMP_MATERIAL_30, "可用于制作80级野蛮套装"),

	八级智慧结晶(57, 80, MmochatConstant.BMP_MATERIAL_31, "可用于制作80级智慧套装"),

	八级活力结晶(58, 80, MmochatConstant.BMP_MATERIAL_34, "可用于制作80级活力套装"),

	八级灵巧结晶(59, 80, MmochatConstant.BMP_MATERIAL_33, "可用于制作80级灵巧套装"),

	八级坚韧结晶(60, 80, MmochatConstant.BMP_MATERIAL_32, "可用于制作80级坚韧套装"),

	九级野蛮结晶(61, 90, MmochatConstant.BMP_MATERIAL_30, "可用于制作90级野蛮套装"),

	九级智慧结晶(62, 90, MmochatConstant.BMP_MATERIAL_31, "可用于制作90级智慧套装"),

	九级活力结晶(63, 90, MmochatConstant.BMP_MATERIAL_34, "可用于制作90级活力套装"),

	九级灵巧结晶(64, 90, MmochatConstant.BMP_MATERIAL_33, "可用于制作90级灵巧套装"),

	九级坚韧结晶(65, 90, MmochatConstant.BMP_MATERIAL_32, "可用于制作90级坚韧套装"),

	十级野蛮结晶(66, 100, MmochatConstant.BMP_MATERIAL_30, "可用于制作100级野蛮套装"),

	十级智慧结晶(67, 100, MmochatConstant.BMP_MATERIAL_31, "可用于制作100级智慧套装"),

	十级活力结晶(68, 100, MmochatConstant.BMP_MATERIAL_34, "可用于制作100级活力套装"),

	十级灵巧结晶(69, 100, MmochatConstant.BMP_MATERIAL_33, "可用于制作100级灵巧套装"),

	十级坚韧结晶(70, 100, MmochatConstant.BMP_MATERIAL_32, "可用于制作100级坚韧套装"),

	十一级野蛮结晶(71, 110, MmochatConstant.BMP_MATERIAL_30, "可用于制作110级野蛮套装"),

	十一级智慧结晶(72, 110, MmochatConstant.BMP_MATERIAL_31, "可用于制作110级智慧套装"),

	十一级活力结晶(73, 110, MmochatConstant.BMP_MATERIAL_34, "可用于制作110级活力套装"),

	十一级灵巧结晶(74, 110, MmochatConstant.BMP_MATERIAL_33, "可用于制作110级灵巧套装"),

	十一级坚韧结晶(75, 110, MmochatConstant.BMP_MATERIAL_32, "可用于制作110级坚韧套装"),

	十二级野蛮结晶(76, 120, MmochatConstant.BMP_MATERIAL_30, "可用于制作120级野蛮套装"),

	十二级智慧结晶(77, 120, MmochatConstant.BMP_MATERIAL_31, "可用于制作120级智慧套装"),

	十二级活力结晶(78, 120, MmochatConstant.BMP_MATERIAL_34, "可用于制作120级活力套装"),

	十二级灵巧结晶(79, 120, MmochatConstant.BMP_MATERIAL_33, "可用于制作120级灵巧套装"),

	十二级坚韧结晶(80, 120, MmochatConstant.BMP_MATERIAL_32, "可用于制作120级坚韧套装")

	;

	private int value;
	private int monsterLevel;// 掉落此材料的怪物等级
	private int bmpId;
	private String info; // 物品介绍

	MmochatMaterialType(int value, int monsterLevel, int bmpId, String info) {
		this.value = value;
		this.monsterLevel = monsterLevel;
		this.bmpId = bmpId;
		this.info = info;
	}

	public static MmochatMaterialType get(int value) {
		for (MmochatMaterialType type : MmochatMaterialType.values()) {
			if (type.getValue() == value) {
				return type;
			}
		}
		return null;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public String getInfo() {
		return info;
	}

	public void setInfo(String info) {
		this.info = info;
	}

	public int getBmpId() {
		return bmpId;
	}

	public int getMonsterLevel() {
		return monsterLevel;
	}

	public static MmochatMaterialType getRandomMaterial(int myLevel) {
		try {
			int startLevel = myLevel / 10 * 10;
			int endLevel = startLevel + 9;
			List<MmochatMaterialType> list = new ArrayList<MmochatMaterialType>();
			for (MmochatMaterialType type : MmochatMaterialType.values()) {
				if (type.getMonsterLevel() < 30
						|| (type.getMonsterLevel() >= startLevel && type
								.getMonsterLevel() <= endLevel)) {
					list.add(type);
				}
			}
			int count = list.size();
			if (count == 0) {
				return MmochatMaterialType.木料;
			}
			int index = MmochatUtil.getRandomValue(count);
			return list.get(index);
		} catch (Exception e) {
			return MmochatMaterialType.木料;
		}
	}

}
